/**
 * 
 */
package truerefactor.graph;

/**
 * Enumeration to describe the possible types of edges within a code graph and
 * within a UML Class Diagram.
 * 
 * @author Isaac Griffith
 */
public enum EdgeType {

    /**
     * represents a composition association
     */
    Composition,

    /**
     * represents a inheritance from one class to another.
     */
    Generalization,

    /**
     * represents a dependency relationship between two classes
     */
    Dependency,

    /**
     * Represents an interface realization
     */
    InterfaceRealization,

    /**
     * Represents an association between two classes
     */
    Association,

    /**
     * Represents an aggregated association
     */
    Aggregation,

    /**
     * Represents a dependency required for realization of an interface
     */
    RealizationDependency,

    /**
     * Represents a dependency between two classes based on the use of one class
     * by another
     */
    UseDependency,

    /**
     * Represents a dependency required for abstraction
     */
    AbstractionDependency,

    /**
     * Represents an association and another object where this association is
     * implemented through a collection data type
     */
    CollectedAssociation,

    /**
     * Represents a link between a class and one of its associated attributes
     */
    Attribute,

    /**
     * Represents a link between a class and one of its associated methods
     */
    Method,

    /**
     * Represents a link between methods within the same class
     */
    IntraClassAssociation,

    /**
     * Represents a link between statements in a MethodNode's Statement Graph
     */
    Statement,

    /**
     * Represents a Class to Package Association
     */
    Package,

    /**
     * Package Dependency
     */
    PackageDependency,
}
